package com.example.kuaizu.service;

import com.example.kuaizu.pojo.PageBean;
import com.example.kuaizu.pojo.dto.ApplicationProjectListDTO;
import com.example.kuaizu.pojo.dto.UserEmailDao;
import com.example.kuaizu.pojo.ov.ProjectOv;
import com.example.kuaizu.pojo.ov.UserProfileOv;
import com.example.kuaizu.pojo.pram.ProjcetIds;
import com.example.kuaizu.pojo.pram.projectDeliveryOliveBranchParam;
import kuaizu.common.PageData;
import kuaizu.common.param.QueryDataPoJectInfoPram;
import kuaizu.common.tablepojo.Project;

import java.util.List;

public interface InProjectService {

    //创建项目
    public Project createProject(Project pro);

    //申请加入项目
    int joinProject(Integer projectid);

    //查询所有的项目
    List<ProjectOv> SelectProjectInfo(String openid);

    //修改申请信息
    int UpdateProjectJoin(Integer projectid, String id, Integer status);

    //分页查询项目信息
    PageBean<ProjectOv> getAllProject(Integer pageNum, Integer pageSize, Integer school);

    //查询指定项目申请人信息,通过审核的信息
    //List<UserEmailDao> selectProjectJoin(Integer id);
    //查询指定项目申请人
    List<UserEmailDao> selectProjectJoin(Integer id,Integer start);
    List<UserProfileOv> selectProjectJoin2(Integer id,Integer start);
    /**
     * 获取当前登录用户申请的所有项目列表以及项目信息
     *
     * @return 申请列表
     */
    List<ApplicationProjectListDTO> queryApplicationProject();

    //增加阅读量
    void updeateLookProject(Integer id);

    //删除项目
    void deleteProject(Integer id);

    //根据项目id查询项目信息
    ProjectOv selectProjectById(String id);
    //撤销加入的项目
    void revoke(Integer id);
    //是否加入项目
    boolean isjoin(Integer id);

    void test();
//根据项目简介查询项目
    PageData<ProjectOv> queryProjectByIntroduce(QueryDataPoJectInfoPram pram);
//根据节能要求详细
    PageData<ProjectOv> queryProjectByskillSummary(QueryDataPoJectInfoPram pram);

    List<ProjectOv> byProjectIds(ProjcetIds projectIds);

    void projectReview(Integer projectId, String openId);

    List<UserProfileOv> projectDeliveryOliveBranch(projectDeliveryOliveBranchParam req);
}
